module about_templates;

import dunit;
import helpers;

class AboutTemplates {
  mixin UnitTest;

  T twice(T)(T value){  //shortcut syntax
      return 2 * value;
  }

  T twice(T : string)(T value){ // specialization
    return value ~ value;
  }

  @Test
  public void functionTemplates()
  {
    auto val1 = twice!int(2);  // instantiation
    assertEquals(val1, FILL_IN_THIS_NUMBER);
    auto val2 = twice("hello");
    assertEquals(val2, FILL_IN_THIS_STRING);
  }
}